Incident detection and management

ABSTRACT

Systems and methods for detecting and managing incidents are disclosed. In one embodiment, a method for detecting an incident includes receiving issue data created for an issue tracking system; analyzing the received issue data over a predetermined interval; determining whether a potential incident has occurred based on the analysis; upon determining that a potential incident has occurred, creating an incident management assistant program; identifying one or more relevant users to communicate an alert to; and communicating the alert to the identified relevant users, the alert including a pointer to the incident management program.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of Australian patent application no.AU2019904889, filed Dec. 23, 2019 and titled “Incident Detection andManagement,” the disclosure of which is hereby incorporated herein byreference in its entirety.

TECHNICAL FIELD

The present disclosure generally relates to issue tracking systems andin particular to detecting and/or managing incidents in issue trackingsystems.

BACKGROUND

Background information described in this specification is backgroundinformation known to the inventors. Reference to this information asbackground information is not an acknowledgment or suggestion that thisbackground information is prior art or is common general knowledge to aperson of ordinary skill in the art.

In general, the continuous improvement to software or computer coderequires consistent and reliable tracking of various technical problemsor issues that occur during execution of the software. Technicalproblems or issues may be tracked using a system that manages progressand completion of the various problems or issues. However, sometraditional systems have limited access to user information or theability to monitor ongoing activity. As a result, some traditionalsystems may not be able to identify wide-spread issues or a distributedtechnical effect of a software problem. The systems and techniquesdescribed herein address some of the shortcomings with traditionalsystems and may be used to provide a more efficient technical solutionto a software issue or other technical problem.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram depicting a single-server networked environment inwhich various features of the present disclosure may be implemented.

FIG. 2 is a diagram depicting a multi-server networked environment inwhich various features of the present disclosure may be implemented.

FIG. 3 is a block diagram of a computer processing system configurableto perform various features of the present disclosure.

FIG. 4 is a partial example of a simple relational database schema foran ITS.

FIG. 5 is a flowchart illustrating an example method for detectingpotential incidents according to some aspects of the present disclosure.

FIG. 6 is a flowchart illustrating an example method for managing apotential incident according to aspects of the present disclosure.

FIG. 7 is a screenshot illustrating a first example user interface of anassistant program according to some aspects of the present disclosure.

FIG. 8 is a screenshot illustrating a second example user interface ofan assistant program according to some aspects of the presentdisclosure.

FIG. 9 is a screenshot illustrating a third example user interface of anassistant program according to some aspects of the present disclosure.

FIG. 10 is a screenshot illustrating a fourth example user interface ofan assistant program according to some aspects of the presentdisclosure.

FIG. 11 is a screenshot illustrating an example alert according to someaspects of the present disclosure.

While the invention as claimed is amenable to various modifications andalternative forms, specific embodiments are shown by way of example inthe drawings and are described in detail. It should be understood,however, that the drawings and detailed description are not intended tolimit the invention to the particular form disclosed. The intention isto cover all modifications, equivalents, and alternatives falling withinthe scope of the present invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE EMBODIMENTS

In the following description, numerous specific details are set forth inorder to provide a thorough understanding of the claimed invention. Itwill be apparent, however, that the claimed invention may be practicedwithout these specific details. In some instances, well-knownstructures.

In general, issue tracking systems are systems that manage the creationand tracking of issues in a variety of contexts. Issue tracking systemsare variously referred to as trouble ticket systems, support ticketsystems, request management systems, and incident ticket systems. As oneexample, an issue tracking system may be deployed for use by a helpdeskproviding customer support for one or more software applications orservices. Whenever users require assistance on the supported softwareapplications or services, they may raise issues. A busy helpdesk maymanage thousands, tens of thousands, or even more such issues.

Issue tracking systems (also referred to herein as “ITS” or “ITSsystems”) often handle issues that affect individual users—e.g., issuesrelated to insufficient permissions to access a particular service,issues related to upgrade requests, etc. These types of issues are oftennon-urgent and handled based on an organization's support servicecharter that sets out permissible time frames for resolving such issues.However, occasionally, ITS systems also handle issues that affectmultiple users—e.g., an event that has caused disruption to or areduction in the quality of service of a software application orservice. Such types of issues are often called ‘incidents’ and incidentscan vary widely in severity, ranging from an entire global web servicecrashing to a small number of users having intermittent errors.Incidents often require an emergency response/solution.

In some cases, users may report incidents in the same manner in whichthey raise issues. An issue tracking system may be configured toautomatically distribute the received issues amongst helpdesk staff asand when issues are received. However, this may make it difficult forthe support team to identify and act on incidents quickly. As describedherein, an issue tracking system, alone or in conjunction with othersystems or modules, be adapted to identify potential incidents andmanage issues and user alerts in a manner that may improve theefficiency and/or effectiveness of the technical solution or softwarefix.

Overview

The embodiments described herein relate to monitoring and managingincidents by an issue tracking system.

As used herein, the term “issue tracking system” (also, “ITS” or “ITSsystem”) generally refers to a system which can be used to track“issues.” Typically, when a user faces some kind of issueaccessing/working on a software application/service supported by an ITSsystem, the user may report this issue along with along with adescription of the issue using any communication means supported by theITS—e.g., using a support service user interface hosted on theapplication/service website, an ITS application client, the phone,email, etc.

At the ITS, this issue information is received and converted into a“ticket.” The ticket may include a unique identifier and may alsoinclude the information added by the user to describe the issue beingfaced by the user. In addition to this, the ticket is also associatedwith a workflow—i.e., a series of states through which the tickettransitions over its lifecycle. The workflow for a given ticket may besimple (e.g. an open state and a closed state) or more complex (e.g.open, closed, resolved, in progress, reopened). The particularinformation and workflow associated with a ticket may vary greatlydepending on the scenario in which the ITS is implemented. By way ofexample, an ITS may be implemented in a helpdesk scenario, in which casethe tickets may be issues logged with the helpdesk. An ITS may beimplemented in a project management scenario, in which case the ticketsmay correspond to project tasks. An ITS may be implemented in a softwaredevelopment scenario, in which case tickets may be associated with bugs,current features under development, and/or features intended for furtherdevelopment. An ITS may be implemented in an organizationaladministration scenario, in which case tickets may correspond toadministrative forms (e.g. leave request forms or the like). Many otherITS implementations in which different types of tickets are trackedthrough different lifecycles are possible. The embodiments herein willbe described in relation to “issues.” It will be appreciated, however,that the embodiments and principles thereof may be applied to differenttypes of tickets.

One embodiment may be implemented as part of an ITS, such as JIRA, whichis commercially available from Atlassian Pty Ltd., Sydney, Australia.

In a helpdesk implementation, tickets are typically created bycustomers, e.g., by directly providing issue details via an ITS clientapplication or web browser. In some situations, tickets may also becreated by support staff, e.g., in response to a customer raising anissue via other mediums (e.g., over the telephone, in a chat, etc.). Inany event, once a ticket is created, it is assigned a unique identifierand stored. This process is repeated for multiple tickets. Storedtickets are assigned to suitable support staff, who may review thedescription associated with the ticket and work on resolving theunderlying issue.

As described previously, when an incident occurs, which affects multipleusers, customers may raise issue tickets to request resolution.Nevertheless, because tickets are distributed to support staff based onavailability, it may take a long time for the support staff to identifya pattern or realize that there is an increase in the number of ticketsrelated to the same issue and consequently realize an incident hasoccurred. For example, a support staff may identify a potential incidentwhen he/she receives three or more tickets over a short period of time(e.g., over 10 minutes) from different users that define the same orsimilar problem. That support staff may then enquire around the officeto determine if any other support staff have received similar tickets.If there is a consensus—the support team may determine that an incidenthas occurred. However, if the helpdesk is manned by 25 support staff andrequests are distributed evenly amongst these people, the helpdesk maynot realize that an incident has occurred until at least 75 ticketsrelated to the same issue are received. This manual and ineffectivemanner of identifying incidents wastes crucial time that may be utilizedto resolve the incident and/or inform other users about the incident.

Further still, once an incident is detected, it is often difficult forhelpdesk staff to know/remember exactly what to do to manage theincident. Some help may be provided in the form of help documents storedin various different locations/folders/databases. However, it is oftendifficult to remember where to access the documentation. Further yet,because incident management includes numerous steps that involvealerting/notifying various teams and communicating as soon as possiblewith customers, a helpdesk person may have to access multiple differentcommunication tools and management systems to perform the processesrequired to manage the incident. All of this increases the cognitiveburden on the helpdesk staff and consequently wastes time—which isimportant when dealing with major incidents.

To overcome one or more of these issues, in some embodiments, an ITS isprovided that can automatically detect incidents. To do this, the ITSmonitors the rate at which tickets are created. If the rate increasesabove a threshold value, the ITS may determine that a potential incidenthas occurred. The threshold value may be static (i.e., remains constant)or dynamic (i.e., varies based on one or more criteria, such as time ofday, geographical location, and/or application/service being supported).In addition to this criterion, the ITS may determine that an incidenthas occurred based on other metadata associated with the tickets—e.g.,based on the application/software the issue is regarding, based on thelocation of the customers that raised the tickets, and/or based onkeywords in the description of the ticket. Once the ITS determines thata potential incident has occurred, the ITS generates an alert andcommunicates this alert to a suitable helpdesk staff (e.g., an availablehelpdesk manager).

The alert may include a pointer (e.g., a URL link) to an intelligentassistant program as disclosed herein. The assistant program guides thehelpdesk staff to manage the incident through a systematic process.Further, the assistant program (which is integrated with a number ofcommunication and management platforms) automatically communicates withthe communication tools and management systems on behalf of the supportstaff) thereby reducing the user's cognitive burden and drasticallyimproving incident management response time, leading to fewer or noerrors and faster resolution of incident tickets. The assistant programcan aid a helpdesk user to confirm the incident, assess the impact ofthe incident (and apply a severity level), generate and communicate anincident alert to customers, escalate the incident to the rightresponders, and label and/or action multiple tickets associated with theincident with one action. By generating and communicating an incidentalert informing customers that the support team is aware of the incidentin a timely manner, the embodiments disclosed herein can help reduce thenumber of potential future tickets raised by customers to report theincident—thereby reducing load on the ITS server. Aspects of thisassistant program will be described in detail below.

To perform these and other functions, an ITS may be provided using avariety of different architectures. One implementation is a clientserver architecture where the ITS functionality is provided by a servercomputer and accessed by users from client computers. Two examples of aclient server implementation are described generally below. Alternativeimplementations/architectures are, however, possible. For example, inthe case of small enterprises with relatively simple requirements, anITS may be a stand-alone implementation (i.e. on a single computerdirectly accessed/used by the end user).

Single Server ITS Architecture

FIG. 1 illustrates a single server implementation of an ITS 100 inaccordance with one embodiment. ITS 100 comprises a server computer 102.Server computer 102 hosts an ITS server 104 for providing server-sidefunctionality of the ITS. The ITS server 104 comprises one or moreapplication programs, libraries, APIs or other software elements thatimplement the features and functions that are further described herein.For instance, the server 102 allows users to perform various actionswith respect to issues—for example, create issues, associate issues withprojects and/or other issues, transition issues between workflow states,add/edit information associated with issues, assign issues to specificpeople/teams, view issues and/or search for issues. The issue trackingsystem 100 also allows for management of an issue, for example userpermissions defining: users that can see an issue and its associatedinformation; users who can edit an issue; users who can transition anissue into/out of a particular workflow state; users who should beautomatically notified any time an issue changes (either any change or aparticular change), etc.

Further, the ITS server 104 includes an incident management system 106,which configures the ITS server 104 to manage incidents. This systemincludes two main modules—an incident detection module 107, which isconfigured to monitor issues and detect incidents and an assistantprogram 109, which is configured to aid helpdesk staff, manage detectedincidents. This system and its modules will be described in detailbelow.

Server computer 102 also stores or has access to ITS data. ITS datagenerally includes: ITS metadata defining the operation of the ITS (forexample, issue type definitions, issue workflows, user permissions andthe like); and issue data (i.e. data in respect of the issues that havebeen entered into the ITS and are being maintained by the ITS). ITS datamay, for example, be stored on a local file system of the servercomputer 102, a file system of another computer, and/or managed by adatabase such as database 108. Database 108 will typically be providedby database server operating on a separate physical computer coupled(directly or indirectly via one or more networks) to ITS server computer102. Database 108 may however be a database server operating on servercomputer 102 itself.

System 100 also comprises user computers 112A, 112B, and 112C. One ormore of the these user computers may be operated by customers to accessapplications/services supported by the ITS and raise one or more issues.Some of the user computers 112 may be operated by helpdesk staff forhandling tickets on the ITS. When the user computer is operated by ahelpdesk staff, the user computer 112 may include an ITS client 114 forproviding client-side functionality of the ITS 100.

The ITS client 114 may be a general web browser application (such as,for example, Chrome, Safari, Internet Explorer, Opera) which accessesthe ITS server 104 via an appropriate uniform resource locator (URL) andcommunicates with the ITS server 104 via general world-wide-webprotocols (e.g. http, https, ftp). The web browser application isconfigured to request, render, and display electronic documents thatconform to a markup language such as Hypertext Markup Language (HTML),Extensible Markup Language (XML) or extensions, and may be capable ofinternally executing browser-executable code such as JAVASCRIPT, ACTIVESERVER PAGES, or other forms of code. Where the ITS client 114 is a webbrowser, the ITS server 104 will be a web server (such as, for example,Apache, Internet Information Server (IIS), Google Web Server (GWS), ornginx). Alternatively, the ITS client 114 may be a specific applicationprogrammed to communicate with server 102 using defined applicationprogramming interface (API) calls. In this case the ITS server 104 willbe a specific application server configured to interact with the ITSclient application. A user computer 112 may host more than one ITSclient 114 (for example a general web browser client and a specificapplication client). Similarly, server computer 102 may host more thanone ITS server 104.

The ITS server computer 102 may serve multiple user computers 112 (or,more specifically, multiple ITS clients 114). In FIG. 1 three usercomputers have been depicted (112A, 112B, and 112C), though more orfewer could be used.

The server computer 102 and client computer 112 communicate data betweeneach other either directly or indirectly through one or morecommunications networks 116. Communications network 116 may comprise alocal area network (LAN) of an enterprise in one embodiment. In thiscase, ITS 100 may be implemented as an on-premises solution in which theserver computer 102 and user computer 112 are associated with the samebusiness enterprise and at least the server computer 102 is within anenterprise-controlled facility that is protected from open internetworksusing firewalls or other security systems. In another embodiment,network 116 may represent a public internetwork and the server computer102 may be located off-premises with respect to an organization, such asin a shared data center or cloud computing facility.

Multiple Server ITS Architecture

FIG. 2 illustrates a multiple server (clustered) implementation of anITS 200 in accordance with another embodiment. In the arrangement ofFIG. 2, the ITS 200 is implemented using one or more server computinginstances 202 (or nodes) that are instantiated on or hosted in a shareddata center or cloud-computing infrastructure. Examples include AMAZONWEB SERVICES, RACKSPACE, and private cloud data centers. A servercomputer instance 202 is instantiated on or hosted in a computer, and insome instances, a single computer may host several server computerinstances 202. In FIG. 2, two server computing instances 202A and 202Bhave been depicted, but there may be any number of server computinginstances instantiated from time to time based upon the number of ITSclients 114 that access the instances, or other performancerequirements.

An executable image of each server computing instance 202 includes anITS server 104 with the incident management system 106, in a similarfashion to ITS server 104 described above. Each server computinginstance 202 in this embodiment also stores issue data (also describedabove), which during operation of the ITS is replicated across allserver computing instances. In the arrangement of FIG. 2, all servercomputing instances access a common database 108 to store and retrieveITS data.

From the client side, the multiple server ITS 100 arrangement of FIG. 2is essentially the same as the single server arrangement described withrespect to FIG. 1. User computers 112 host ITS clients 114 whichfacilitate access to the ITS server functionality over network 116. Inthe arrangement of FIG. 2, however, requests from ITS clients 114 areinitially received by a load balancer 204, which distributes requestsbetween the available server computing instances 202. Load balancer 204may be a hardware or software load balancer.

In the arrangement of FIG. 2, network 116 may represent at least oneinternetwork, such as the public internet, in combination with one ormore wired or wireless LANs, WANs, or other network accessinfrastructure such as cable modems, routers, etc.

In the arrangements described above, the incident management system 106is shown as being part of and running on the ITS server 102. In someembodiments, the incident management system 106 may not reside on theITS server 102 but as a stand-alone system that is communicativelycoupled to the ITS to receive/forward issue and incident related datafrom/to the ITS server 102. Further, in some embodiments, the incidentmanagement system 106 may be communicatively coupled to one or moreother incident management platforms (such as Opsgenie offered byAtlassian, Inc.) to send alerts to helpdesk staff once an incident isdetected and/or communication tools (such as Statuspage) to forwardapplication/service status information to the correspondingapplication/services.

Hardware Overview

The embodiments and features described herein are implemented by one ormore special-purpose computing systems or devices. For example, inenvironment 100 each of the user computer 112, and the ITS servercomputer 112 is or includes a type of computing system.

A special-purpose computing system may be hard-wired to perform therelevant operations. Alternatively, a special-purpose computing systemmay include digital electronic devices such as one or moreapplication-specific integrated circuits (ASICs) or field programmablegate arrays (FPGAs) that are persistently programmed to perform therelevant operations. Further, alternatively, a special-purpose computingsystem may include one or more general-purpose hardware processorsprogrammed to perform the relevant operations pursuant to programinstructions stored in firmware, memory, other storage, or acombination.

A special-purpose computing system may also combine custom hard-wiredlogic, ASICs, or FPGAs with custom programming to accomplish therelevant operations described herein. A special-purpose computing systemmay be a desktop computer system, a portable computer system, a handhelddevice, a networking device or any other device that incorporateshard-wired and/or program logic to implement relevant operations.

By way of example, FIG. 3 provides a block diagram that illustrates oneexample of a computer system 300, which may be configured to implementthe embodiments and features described herein. Computer system 300includes a bus 302 or other communication mechanism for communicatinginformation, and a hardware processor 304 coupled with bus 302 forprocessing information. Hardware processor 304 may be, for example, ageneral-purpose microprocessor, a graphical processing unit, or otherprocessing unit.

Computer system 300 also includes a main memory 306, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 302for storing information and instructions to be executed by processor304. Main memory 306 also may be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by processor 304. Such instructions, when stored innon-transitory storage media accessible to processor 304, rendercomputer system 300 into a special-purpose machine that is customized toperform the operations specified in the instructions.

Computer system 300 further includes a read only memory (ROM) 308 orother static storage device coupled to bus 302 for storing staticinformation and instructions for processor 304. A storage device 310,such as a magnetic disk or optical disk, is provided and coupled to bus302 for storing information and instructions.

In case the computer system 300 is the user computer 112, the computersystem 300 may be coupled via bus 302 to a display 312 (such as an LCD,LED, touch screen display or other display), for displaying informationto a computer user. An input device 314, including alphanumeric andother keys, may be coupled to the bus 302 for communicating informationand command selections to processor 304. Another type of user inputdevice is cursor control 316, such as a mouse, a trackball, or cursordirection keys for communicating direction information and commandselections to processor 304 and for controlling cursor movement ondisplay 312.

According to one embodiment, the techniques herein are performed bycomputer system 300 in response to processor 304 executing one or moresequences of one or more instructions contained in main memory 306. Suchinstructions may be read into main memory 306 from another storagemedium, such as a remote database. Execution of the sequences ofinstructions contained in main memory 306 causes processor 304 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that stores data and/or instructions that cause a machine tooperate in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical or magnetic disks, such as storage device 310.Volatile media includes dynamic memory, such as main memory 306. Commonforms of storage media include, for example, a floppy disk, a flexibledisk, hard disk, solid state drive, magnetic tape, or any other magneticdata storage medium, a CD-ROM, any other optical data storage medium,any physical medium with patterns of holes, a RAM, a PROM, and EPROM, aFLASH-EPROM, NVRAM, any other memory chip or cartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 302. Transmission media can also take the formof acoustic or light waves, such as those generated during radio waveand infrared data communications.

Computer system 300 also includes a communication interface 318 coupledto bus 302. Communication interface 318 provides a two-way datacommunication coupling to a communication network, for examplecommunication network 116 of environment 100 or 200. For example,communication interface 318 may be an integrated services digitalnetwork (ISDN) card, cable modem, satellite modem, etc. As anotherexample, communication interface 318 may be a local area network (LAN)card to provide a data communication connection to a compatible LAN.Wireless links may also be implemented. In any such implementation,communication interface 318 sends and receives electrical,electromagnetic or optical signals that carry digital data streamsrepresenting various types of information.

Computer system 300 can send messages and receive data, includingprogram code, through the network(s) 116, network link 320 andcommunication interface 318.

As noted, computer system 300 may be configured in a plurality of usefularrangements, and while the general architecture of system 200 may bethe same regardless of arrangements, there will be differences. Forexample, where computer system 300 is configured as a server computer(e.g. ITS server 104), it will typically be provided with higher endhardware allowing it to process data, access memory, and perform networkcommunications more rapidly than, for example, a user computer (such ascomputer 112).

General ITS Operation

This section describes the general manner in which an ITS such as ITS100 or 200 is deployed and used.

ITS 100 maintains metadata defining the operation of the ITS 100. In oneembodiment this metadata includes: one or more issue type definitions,each issue type definition defining a field scheme or fieldconfiguration for issues of that type (e.g., the possible fields or datato be maintained by the ITS for issues of a given type); one or moreworkflow definitions, a workflow definition defining the workflow of anissue of a particular issue type (e.g., the states an issue can take andthe manner in which an issue transitions between those states over itslifecycle); and user permissions (e.g., which users may create issues,view issues, amend issues, change the states of issues etc.).

Further, the ITS 100 maintains a list of tickets received by the ITS100. For each ticket in the list, the ITS 100 may be configured to storea wide variety of information. By way of one simple example, a ticketmay include an issue type definition which may define the followingfields: an application/service field storing a an application/serviceassociated with the issue; a key field storing a unique identifier forthe issue; a description field storing a description of the issue andactions taken with respect to the issue; a status field indicating thestage the issue is currently at in its lifecycle; an assigned personfield indicating who (if anyone) the issue has been assigned to; aseverity field storing the severity of the issue (e.g. critical, major,minor, etc.); a priority field storing the priority of the issue at ageneral level (e.g. very high, high, medium, low, very low); and a rankfield storing a rank value in respect of the issue (defining a rankorder of the issue relative to other issues). In this example, thepriority field and the rank field store different information. A largenumber of issues may have the same priority (e.g. critical), howeveronly one issue may have a given rank value. The actual fields definedwith respect to an issue type will depend on the requirements of a givenITS implementation, and many other fields are possible.

An ITS may maintain this list of issues in a variety of data structures.In one embodiment, issues are stored in a relational database. By way ofillustration, FIG. 4 provides a partial example of a simple relationaldatabase schema 400 for an ITS. In this example, schema 400 includes: anissue table 402 comprising an issue ID field, an application/service IDfield, a timestamp of when the issue was created, a status ID field, anissue description field, and an issue rank field; an application/servicetable 404 comprising an application/service ID field, and anapplication/service description; and a status table 406 comprising astatus ID field and a status description field.

Schema 400 has been provided for descriptive purposes, however arelational database schema for an ITS 100 is typically considerably morecomplex and can have additional/different tables withadditional/alternative fields and linked in alternative ways.Furthermore, different data structures entirely could, in some cases, beused. For example, issues could be stored in a single table datastructure (which may be appropriate for relatively simple ITS s) wherethe single table stores all relevant issue data. The table belowprovides an example of a simple single table data structure for storingissues:

Example issue data structure Key App/ Description Status Priority Date/. . . . . . Service ID timeMonitoring Process

This section describes a computer-implemented method for detecting anincident. The process 500 will be described with reference to theflowchart of FIG. 5, which illustrates processing performed by acomputer processing system. In certain embodiments, these processingsteps are performed by the incident management system 106 running on acomputer processing system (e.g. the ITS server 104 as described above).In alternative embodiments the processing described may be performed byone or more alternative systems (operating in conjunction with the ITSserver or independently) and/or alternative applications/modules runningon those systems.

The method begins at step 502 where the incident management system 106receives issue data. In certain embodiments, the incident managementsystem 106 polls the ITS server 104 at regular intervals (e.g., everyminute) to receive the issue data (e.g., a list of ITS issues that havebeen created in that interval). In other embodiments, the ITS server 102pushes issue data related to ITS tickets to the incident managementsystem 106 continuously (as and when new tickets are created) orperiodically (e.g., every minute, every few minutes, etc.).

In other embodiments, issue data may not be directly received from theITS server 102, but from another intermediary system. In some examples,a central intermediary system may subscribe to updates from the ITSserver 102. This intermediary system may then store the retrieved data(which includes issue data) in its own controlled database. Third partysystems and micro services such as the incident management system 106can subscribe to or query this central intermediary system to receiveupdates. Alternatively, the incident management system 106 can poll thisintermediary system (periodically) to retrieve the required data as andwhen required.

The issue data, polled for or automatically received either directlyfrom the ITS server 102 or the intermediary system, may be communicatedas one or more issue descriptors to the incident management system 106,where each issue descriptor corresponds to a ticket. Further, each issuedescriptor may include information about that particular ticketincluding, e.g., a unique identifier for the ticket, anapplication/service identifier, a description, status, a creationdate/time, etc.

An example issue descriptor is illustrated in Table A below. Although atable has been used to illustrate information received in the issuedescriptor, the relevant information need not be received in a table andcould be received in any appropriate format (e.g. a simple text file, aJavaScript Object Notation (JSON) file, an XML file).

TABLE A Example issue descriptor Issue ID 347kdsfjh38764 ApplicationBitbucket Cloud Identifier Description . . . Status Open Creation May12, 2019 9:12:03:01 date/time

The incident management system 106 may store the received issuedescriptors in its own database or cache for further analysis.

At steps 504 and 506, the incident detection module 107 analyses thereceived issue data over a predetermined interval to determine whetheran incident has occurred. As described previously, the incidentdetection module 107 may be configured to make this determination basedon one or more factors. For instance, the determination can be madebased on a rate of issue creation within a particular time windowexceeding a threshold value. Further, this threshold value may bedynamic—i.e., it may change over the course of a day—increasing forparticularly busy periods of the day (e.g., between 9 am to 5 pm) anddecreasing for known lull periods (e.g., between 9 pm and 3 am).Alternatively, or in addition, the threshold value may vary fordifferent services/applications—it may be higher for applications thathave historically received more issues and lower for applications thathave historically received fewer issues. Similarly, the threshold valuemay vary for different geographical areas—higher values in geographicalareas that have higher number of customers and lower values ingeographical areas that have fewer numbers of customers.

This determination can further be fine-tuned. For example, the incidentdetection module 107 can analyze the issue description (from the issuedescriptors) for keywords and determine that an incident has occurred ifthe same or similar keywords are identified in a threshold number ofissue descriptors related to the same application/service in a giveninterval. It will be appreciated that any combination of these criteriamay be employed to make this determination. The remainder of this methodwill be described with reference to the example of determining whetheran incident has occurred based on the rate of issue creation exceeding adynamic threshold. However, it will be appreciated that the methodequally applies to any of the other criteria on which this determinationcan be made.

At step 504, as a part of analyzing the received issue data over thepredetermined interval, the incident detection module 107 calculates arate of issue creation in that predetermined interval. To this end, theincident detection module 107 retrieves the issue descriptors for allthe issues that were created in the predetermined interval (e.g., last20 minutes). The relevant issue descriptors can be identified byperforming a lookup in the creation date/time field of the receivedissue descriptors. In other embodiments (which are not described here indetail), the incident detection module 107 may retrieve issuedescriptors corresponding to a particular application/service that werecreated in a predetermined interval. In such embodiments, the relevantissue descriptors are identified by performing a lookup in theservice/application identifier field and the creation date/time field inthe issue descriptors. The rate may be calculated based on the number offetched issue descriptors in that time interval. For example, if theincident detection module 107 identifies issue descriptors that werecreated in the last 20 minutes, the rate can be calculated as being 20issues/20 minutes or 1 issue/minute.

At step 506, as part of determining whether a potential incident hasoccurred, the incident detection module 107 determines whether thecalculated rate of issue creation exceeds the current threshold rate. Asdescribed above, the threshold rate can be variable—based on the time ofday, the geographical location, and/or the service/applicationassociated with the issues. In one embodiment, the variable rates arepredefined. For example, the incident detection module 107 may set athreshold rate of 25 issues/20 minutes in peak periods and a rate offive issues/20 minutes in off peak periods. Accordingly, at this step,the incident detection module 107 may identify the threshold rate to beapplied based on the current time of day, the application/service, orthe current geographical location and compare the issue creation ratecalculated at step 506 with the identified threshold rate.

If at this step it is determined that the calculated issue creation rateis lower than the threshold rate (i.e., the no path from step 506), themethod 500 ends. Alternatively, if it is determined at this step thatthe calculated issue rate is equal to or higher than the threshold rate,the method proceeds to step 508, where the incident detection module 107determines that a potential incident has occurred and invokes theassistant program 109. The assistant program will be described in detailin the following section.

At step 510, the incident detection module 107 identifies one or morerelevant users to communicate an alert to about the potential incidentidentified at step 508. In some embodiments, the incident managementsystem 106 may be communicatively coupled to a database/system thatstores and manages a list of helpdesk staff and a real time schedule ofthe support staff on duty at any given time. The incident detectionmodule 107 may query this database/system to retrieve name/contactinformation for one or more helpdesk staff that may be currently onduty. In other embodiments, the incident management system 106 maymaintain a preconfigured static list of relevant support staff tocontact in case an incident is uncovered. This static list may beconfigured such that a list of relevant support staff are provided foreach of the application/services the ITS is responsible for and fordifferent geographical locations in which the ITS operates. In thiscase, the relevant support staff may be selected based on theapplication/service ID associated with a majority of the created issuesand/or a geographical location where a majority of the issues werecreated.

In any case, once one or more relevant users are identified, theincident detection module 107 sends an alert to the identified relevantperson(s) at step 512. The alert may be sent using a suitablecommunication mechanism such as an SMS, an email, a push notification,etc. Further, the alert may include a link to the assistant program.

When the user selects the link, the user is directed to an assistantprogram, which the user can utilize to manage the potential incident asdescribed in the following section.

In some embodiments, a dedicated incident management platform, such asOpsgenie, offered by Atlassian Pty Ltd., may be available. Opsgenie is amodern incident management platform that ensures critical incidents arenever missed, and actions are taken by the right people in the shortestpossible time. In case such an incident management platform is availableand communicatively coupled to the incident management system 106, oncethe incident detection module 107 determines that a potential incidenthas occurred, it may communicate the alert to the incident managementplatform. As part of the alert, the incident detection module 107, maycommunicate data including, the time at which the incident was detected,the threshold criteria that triggered the alert, an identifier for thealert, identifier for a potential product/service affected, etc. Theincident management platform in turn may categorize the alert based onimportance and timing which can be determined based on the data receivedas part of the alert. The incident management platform maintains its owndatabase of on-call schedules of support staff and identifies therelevant people to communicate the alert to. In certain embodiments, theincident management platform may also identify the responsible team forthe alert based on the product/application identifier received as partof the alert data from the incident detection module 107. Accordingly,in this embodiment, steps 510 and 512 are performed by the incidentmanagement platform and not by the incident management system 106.

FIG. 11 shows an example alert 1100 communicated by the incidentdetection platform to one or more identified users. As seen in thisexample, the alert 1100 includes an alert identifier, a status of thealert, an application/service identifier, a team identifier (of the teamresponsible for handling such alerts), a time at which the alert wascreated, a description of the alert, and a priority of the alert. Thealert 1100 also include a counter indicating the amount of time elapsedsince the alert was generated. It will be appreciated that in caseswhere the alert is communicated to relevant users directly by theincident management system 106, the alert may appear similar to thealert 1100.

Further, for ease of description, method 500 is described as a singlecycle where the method 500 ends when the calculated incident rate is nothigher than the threshold rate. However, this is not the case. Instead,method 500 is a continuous method that repeats after fixed intervals.For example, at step 506 if the incident detection module 107 determinesthat the calculated rate is not higher than the threshold rate, theincident detection module 107 may wait for a predetermined period (e.g.,1 minute) and then repeat method 500. In this manner, in the event thatan incident is not detected, method 500 is continuously performed untilan incident is detected. Once an incident is detected, method 500 maystop until that incident is managed. The advantage of stopping theincident detection process until the incident is managed is so thatmultiple incident alerts are not generated for the same incident in aquick succession. In other embodiments, the incident detection processmay not stop once an incident is detected. The advantage of thiscontinuous monitoring is that if another non-related incident occurswhich causes the rate of issue creation to increase above the thresholdwhile the first incident is being resolved, the non-related incident isnot missed. In some embodiments, a middle position may be adopted. Theincident detection process 500 may be paused for a predeterminedperiod—e.g., an hour. This period may be set based on historical dataabout issue creation rates when an incident occurs and timing of issuecreation rate reducing back to normal after an incident. For example, ifit is known that issue creation returns to a pre-incident rate typically45 minutes after customers are alerted about the incident, then theincident detection process may be paused for 45-60 minutes after thefirst incident is detected and resumed after that.

Further still, in some embodiments, the incident detection module may beconfigured to send an active signal to an external program or system(e.g., the ITS server) at regular intervals (e.g., every second, every10 seconds, every 30 seconds, etc.) so that the ITS 100 knows that theincident detection module 107 is awake and executing. If one or moreactive signals are not received by the external system, it may bedetermined that the incident detection module 107 is not functioning/hascrashed and certain measures can be taken to revive the module and/orinform the helpdesk staff that the automatic incident detection systemhas failed.

Incident Management Process

As described above, when a potential incident is detected, the assistantprogram 109 is invoked. This program essentially provides a number ofsequential user interfaces to a helpdesk support staff determine whetherthe potential incident is a real or actual incident or not and toprovide further instructions to the incident management supportassistant to automatically perform one or more functions in response todetermining that the incident is a real or actual incident. In someembodiments, the program may provide this information to the user in anincremental fashion so as to guide the user in a systematic fashion toperform the required tasks. In this manner, users that are not veryexperienced in handling incidents can confidently perform the operationsrequired to minimize the effects of the incidents.

This section describes a process for managing an incident using anassistant program once a potential incident alert is generated andforwarded to the relevant person. The process 600 will be described withreference to the flowchart of FIG. 6, which illustrates processingperformed by the assistant program 109. In certain embodiments, theseprocessing steps are performed in junction with a client (eitherdedicate or in a web browser) running on a user computer 112. Inalternative embodiments the processing described may be performed by oneor more alternative systems (operating in conjunction with the ITSserver or independently) and/or alternative applications/modules runningon those systems.

The method commences when the assistant program 109 is invoked. This maybe performed, e.g., when the incident detection module 107 detects apotential incident may have occurred (yes path from step 506). Theinvoked assistant program may create a link to a user interface andforward this link to the incident detection module 107, which forwardsthe link along with the alert to a relevant helpdesk staff.

Once the staff member selects the link, the assistant program mayforward a user interface to the client to be rendered and displayed on adisplay of the user computer 112 at step 604. In response, the client(either a dedicated client or a web browser) renders the user interfaceon a screen of the user device.

The user interface can include some static data—e.g., the name andidentifier of the alert, and one or more incident management pointers,and some dynamic data, e.g., data corresponding to the issues thatresulted in the potential incident being identified and any other issuesthat were created after the incident was detected. The static data maybe created and stored when the assistant program is first invoked andthis data may remain the same for different alerts. On the other hand,the assistant program may retrieve the dynamic data when the supportstaff selects the link and the user interface is rendered on the screenof the user computer 112.

FIG. 7 illustrates an example user interface 700 that may be displayedon the user device in response to step 604. The user interface includesa graphical representation 702 showing an order of sequential steps tobe executed by the assistant program with the current step highlighted,where each step corresponds to a different user interface to bedisplayed to the user. In this example user interface, the graphicalrepresentation 702 shows four steps, ‘analyze support requests’, ‘reportHOT incident’, ‘post Statuspage alert’, and ‘manage support requests’with the ‘analyze support requests’ affordance being highlighted. Inaddition, the user interface 700 includes static information about oneor more functions the user can perform while the user is on the currentuser interface of the dashboard. In the illustrated example, thisinformation is depicted in box 704. However, it will be appreciated thatthis information may be depicted in any other manner—such as a checklistof instructions and in some instances it may be entirely omitted—e.g.,in case the user interface is rendered for a user that is well-versedwith incident management procedures or has used the assistant program athreshold number of time in a particular time period. To enable this,the incident management system 106 may maintain a counter of the numberof times users (identified by their unique user identifiers) haveaccessed the assistant program. This counter may be accessed before theuser interface data is forwarded to the client device for display. Ifthe counter indicates that the user has utilized the assistant program athreshold number of times (e.g., 20), the static information shown(e.g., in box 704) may be removed.

The dashboard 700 also depicts a summary section 706 displayingproperties of the issues that resulted in the potential incident beingdetected. In some embodiments, this summary may also include any otherissues that were created in the interval between when the potentialalert was detected and when this user interface is rendered on the userdevice. In such embodiments, the summary of properties may bedynamically determined and forwarded to the client when the userinterface 700 is rendered.

In the illustrated example, the summary of properties 706 is displayedin the form of pie charts—where each pie chart corresponds to adifferent property of the issues (e.g., status of the issues,corresponding application/service, corresponding application/serviceversion, priority, etc.). However, it will be appreciated that in otherembodiments, the summary of properties may be displayed in the form ofany other type of charts/graphs or tables. In essence, the summary ofproperties section provides a high-level summary of the underlyingissues in a manner that allows a user to determine whether the potentialincident is a real or actual incident or not at a glance.

In the case of a real or actual incident, one or more properties of theissues should be the same or similar—e.g., the application/serviceassociated with the issues should be the same, or the priority of theissues should be similar. If the summary section depicts that asignificant number or proportion of the issues have the same or similarproperty values (e.g., because the pie charts are divided into very fewsections), the user can quickly form an initial opinion that thepotential incident may be a real or actual incident. Alternatively, ifthe summary section depicts that the issues have very different propertyvalues, e.g., because the pie charts are divided into multiple differentsections, the user can quickly determine that the potential incident isnot a real or actual incident.

To further aid the user in making a determination whether the potentialincident is a real or actual incident, the dashboard 600 may alsoinclude a section 708 that displays a list of issues corresponding tothe potential incident along with the description and other propertyvalues of each issue.

In one embodiment, the assistant program 109 may retrieve the list ofissues and create the summary of properties from the issue descriptors,which were received at step 502 and identified to be the issues createdin the interval corresponding to the alert. In this case, the issue datamay not be accurate (e.g., if the status of the issues has changed). Inother embodiments, the assistant program 109 may identify theidentifiers of the issues that were related to the alert (e.g., from theissue descriptors analyzed at step 504) and may query the ITS system orthe intermediary system to provide the latest status for that list ofissue identifiers.

Finally, the user interface 700 may include two selectableaffordances—‘False alarm’ 710 and ‘Next’ 712. The user may select thefalse alarm option 710 if the user determines that the potentialincident is not a real or actual incident—e.g., after reviewing thesummary section and the list of issues section of user interface 700.Alternatively, the user may select the ‘Next’ option 712 if the userdetermines that the potential incident is a real or actual incident.

At step 606, a determination is made whether the potential incident is areal or actual incident or not. In one embodiment, this determination ismade based on a user selection of the ‘False alarm’ interactiveaffordance or the ‘Next’ interactive affordance and this selection beingforwarded by the client to the assistant program 109.

If at step 606 a determination is made that the potential incident wasnot a real or actual incident, the method proceeds to step 608 where theassistant program 109 may be ended and the management module may forwarda false alarm indicator to the incident detection module 107, which insome cases (e., where it was paused) may return to performing method 500until a next potential incident is detected. Further, each time apotential incident is determined to be a false alarm, the incidentmanagement system 106 may record the false alarm and the conditions(e.g., the alarm criteria) for detecting the incident. This informationmay be used as feedback to automatically update the threshold rates. Forexample, if the incident detection module 107 detects a threshold numberof false incidents within a particular period, the incident detectionmodule 107 may be configured to increase its threshold rate for thatperiod of the day. This way, the incident detection module 107 canself-regulate and improve its accuracy over time.

Alternatively, if at step 606, a determination is made that thepotential incident is a real or actual incident (e.g., because the userselected the ‘next’ interactive affordance), the method proceeds to step610 where the assistant program retrieves a list of recently reportedincidents. To this end, the assistant program may query the ITS serveror the intermediary system to retrieve a list of unresolved incidentsreported in a predetermined interval (e.g., last 24 hours). Thisdynamically (almost real time) retrieved data about unresolved incidentsmay be packaged along with static data and forwarded to the client torender a next user interface. The client in turn utilizes the data torender the corresponding user interface. FIG. 8 illustrates an exampleuser interface 800 that may be displayed in response to this step.

The user interface 800 includes a graphical representation 802 (similarto the representation 702) showing the order of steps and correspondinguser interfaces available in the dashboard 800 with the currentlyselected user interface being highlighted. In this example dashboard,the ‘report HOT incident’ user interface affordance is highlighted. Inaddition, the user interface 800 includes static information about oneor more functions the user can perform while the user is on the currentuser interface of the dashboard. In the illustrated example, thisinformation is depicted in box 804.

The user interface also includes a section 806 displaying the list ofunresolved incident tickets along with relevant information about theincidents—e.g., an incident identifier, a description of the incident, aseverity of the incident, date and time the incident ticket was createdand a current status of the incident. Further still, the user interfacemay include interactive affordances to allow the user to report theincident as a new incident or link the current incident to an alreadyreported incident.

The user may review the list of incident tickets to determine whetherthe current incident has already been reported. If the incident hasalready been reported, the issues related to the current incident can belinked to the reported incident. Alternatively, if the incident isunreported, the user can utilize the assistant program to report theincident.

Accordingly, at step 612, a determination is made whether the incidenthas already been reported. This determination may be made, e.g., basedon the interactive affordance selected by the helpdesk staff. If the“New” interactive affordance 808 is selected, a determination is madethat the incident is unreported. Alternatively, if any of the incidenttickets from the list 806 is selected, a determination is made that theincident has previously been reported.

If a determination is made that the incident is unreported, the methodproceeds to step 614 where the client generates and display a new userinterface, which allows the user to enter a description for the ticketand a severity level. In some embodiments, the data entered in the userinterface is communicated back to the assistant program 109, whichcommunicates this information to the ITS server 102 along with a requestto create a new incident ticket.

Alternatively, if it is determined that the issue associated with thecurrently identified incident is already handled as an incident, e.g.,because the user has selected an incident ticket from the list, themethod proceeds to step 616 where the incident is linked to the existingticket. In particular, the incident management system detects thisselection and adds a label of the current incident to the selectedincident ticket. This way, whenever that incident ticket is viewed inthe future, the viewer would be able to see that the incident is linkedto the current incident.

Once an incident ticket is either created or linked, the method proceedsto step 618 where the assistant program 109 proceeds to render the nextuser interface in the incident management dashboard—to create a statusupdate. Oftentimes, ITS systems may utilize communication tools toinform customers of the status of their applications and/orservices—e.g., to inform customers whether the applications/services areoperational and/or if any offered functionality is currentlyunavailable. Product platforms can also provide updates to informcustomers when a particular unavailable functionality is expected to beavailable. One such communication tool is Statuspage® offered byAtlassian. Statuspage helps organizations inform customers about outagesand scheduled maintenance. Customers can subscribe to updates via emailor text messages when an incident is reported on the organization'swebpage, and updates can also be embedded directly into other interfacesand web properties.

FIG. 9 illustrates an example user interface 900 rendered on a userdevice to automatically retrieve a description for communicating to thecommunication tool (e.g., to create a status update). The user interface900 includes a list of existing status updates 902 and a selectableaffordance 904 to create a new status update. To display this list ofexisting status updates, the assistant program 109 communicates with thecommunication tool (e.g., via its API) when user interface 900 isactivated to retrieve a list of all status updates created for theaffected service/product in the time period between when the alert wasfirst created and the current time.

Next, at step 620, a determination is made if an alert status alreadyexists. This determination can be made based on a user selection on userinterface 900. If the list of active status updates does not include anystatus updates relating to the currently identified incident, the usermay select the selectable affordance to create a new status update.Selection of the selectable affordance results in the assistant program109 forwarding instructions to the client to render a new pop-up userinterface. This user interface (not shown), may provide one or moretemplates for creating the status update message. Once the status updatemessage is created, the status update message may be communicateddirectly to the communication tool to post on the organization's webpageat step 622.

Alternatively, if it is determined that an alert status already exists,e.g., based on the user selecting one of the displayed status updates,the assistant program may link the current incident to the selectedalert status and the method directly proceeds to step 624.

In addition to displaying a list of active status updates and anaffordance for creating a new status update, the user interface 900further includes a list of active deflection bugs associated with theapplication/program associated with the incident and a selectableaffordance to create a new deflection bug. Deflection bugs areessentially records of bugs maintained in a public bug tracking tool(such as JAC) to communicate outages and critical bugs to customers.Deflection bugs may be used when an incident may not affect allcustomers, but still needs a fix.

If the user determines that the number of users affected by the incidentis below a threshold, at this stage, instead of reviewing the list ofstatus alert and determining whether to create a new status alert ornot, the user may review the list of deflection bugs and determinewhether to create a new deflection bug or not.

Once a status update or deflection bug is created/selected, the method600 proceeds to step 624 where the assistant program 109 generates andforward data for the next user interface to be rendered by the client.This next user interface allows the user to manage issues associatedwith the current incident. In addition to the usual static information(e.g., sequence of steps and informational instructions), this userinterface may display a list of tickets associated with theincident—i.e., the tickets that were created when the potential incidentwas detected and tickets that were created after the potential incidentwas detected. Similar to process at step 604, the assistant program 109may retrieve this list of tickets from the ITS server 102 or anintermediary system on the fly, i.e., immediately before causing thefourth user interface to be rendered by the client. In this manner, theassistant program 109 displays a list of the most current tickets forthe user to action.

The developer may review these issues and label one or more of theissues as being associated with the current incident and/or decide torespond to one or more of these issues with a common comment—e.g., amessage informing the ticket creators that the support staff isreviewing the issue and providing a link to the status update page.

FIG. 10 illustrates an example user interface 1000 for managing issues.In addition to a list of issues 1004, this user interface 1000 includean editor interface 1002 to create a comment and selectable affordancesagainst each of the issues in the list 1004.

At step 626, the assistant program 109 determines whether any issuesneed to be updated. This determination is made based on the userselecting one or more issues from the list 1004 (e.g., by selecting aselectable affordance against that issue). Upon making thisdetermination, the assistant program makes an API call to the selectedissue to link the selected issue to the current incident (e.g., byadding a label for the incident to the selected issue). If the user hasalso created a comment in the edit editor interface 1002 and selectedthe comment, the assistant program also posts the created commentagainst the issue, once again through the API. In the case of Jira, thecommand used to do this is a Jira REST API update command, and itcontains the issue details, the label to be added (typically HOT-XXXXX)and the comment to be added (optional).

Alternatively, if it is determined that no issues need to be updated,e.g., because the user has not selected any issues in the list 1004, themethod 600 ends.

The flowcharts illustrated in the figures and described above defineoperations in particular orders to explain various features. In somecases the operations described and illustrated may be able to beperformed in a different order to that shown/described, one or moreoperations may be combined into a single operation, a single operationmay be divided into multiple separate operations, and/or the function(s)achieved by one or more of the described/illustrated operations may beachieved by one or more alternative operations. Still further, thefunctionality/processing of a given flowchart operation couldpotentially be performed by different systems or applications.

Unless otherwise stated, the terms “include” and “comprise” (andvariations thereof such as “including”, “includes”, “comprising”,“comprises”, “comprised” and the like) are used inclusively and do notexclude further features, components, integers, steps, or elements.

Although the present disclosure uses terms “first,” “second,” etc. todescribe various elements, these terms are used only to distinguishelements from one another and not in an ordinal sense.

It will be understood that the embodiments disclosed and defined in thisspecification extend to alternative combinations of two or more of theindividual features mentioned in or evident from the text or drawings.All of these different combinations constitute alternative embodimentsof the present disclosure.

The present specification describes various embodiments with referenceto numerous specific details that may vary from implementation toimplementation. No limitation, element, property, feature, advantage orattribute that is not expressly recited in a claim should be consideredas a required or essential feature. Accordingly, the specification anddrawings are to be regarded in an illustrative rather than a restrictivesense.

What is claimed is:
 1. A computer-implemented method for managing apotential incident, the method comprising: detecting the potentialincident by analyzing issue descriptors of multiple issues, the issuedescriptors created within a predetermined interval, and determiningwhether one or more cumulative characteristics of the issue descriptorsexceed a threshold value; in response to detecting the potentialincident, causing, by an assistant program, a first user interface to bedisplayed on a user computer, the first user interface displayingdetails about the multiple issues that resulted in the potentialincident being detected and including a first selectable affordance fora user to report whether the potential incident is an actual incident;receiving, by the assistant program, a first selection of the firstselectable affordance to report the potential incident as the actualincident; causing, by the assistant program, a second user interface tobe displayed on the user computer in response to receiving the firstselection of the first selectable affordance, the second user interfacedisplaying a first list of previously reported incidents and including asecond selectable affordance to report the actual incident; receiving,by the assistant program, a second selection of the second selectableaffordance to report the actual incident; causing, by the assistantprogram, a third user interface to be displayed on the user computer,the third user interface displaying a second list of open applicationupdates and including a third selectable affordance to create a newapplication update; receiving, by the assistant program, a thirdselection of the third selectable affordance to create the newapplication update; and causing, by the assistant program, the newapplication update to be generated and communicating the new applicationupdate to a communication tool for posting on a webpage associated withan application affected by the actual incident.
 2. The method of claim1, further comprising: determining a summary of properties of the issuedescriptors; and causing the summary of the properties of the analyzedissue descriptors to be displayed in the first user interface.
 3. Themethod of claim 1, further comprising: retrieving a current status ofthe issue descriptors from an issue tracking system; and causing thecurrent status of the issue descriptors to be displayed in the firstuser interface.
 4. The method of claim 1, further comprising: retrievingdata for any unresolved incidents reported in the predetermined intervalfrom an issue tracking system; and causing the retrieved data to bedisplayed in the second user interface as the first list of previouslyreported incidents.
 5. The method of claim 1, further comprising:communicating with the communication tool to retrieve any activeapplication updates managed by the communication tool for theapplication affected by the actual incident; and causing the activeapplication updates retrieved from the communication tool to bedisplayed as the second list of open application updates in the thirduser interface.
 6. The method of claim 1, further comprising:retrieving, by the assistant program, the issue descriptors of themultiple issues in a time interval between detecting the potentialincident and a current time; and causing the first list of previouslyreported incidents to be displayed in a fourth user interface based onthe issue descriptors.
 7. The method of claim 6, wherein causing thefourth user interface to be displayed comprises: retrieving, by theassistant program, a current status of a subset of the issue descriptorsthat were responsible for the detection of the potential incident; andcausing a third list of the subset of the issue descriptors to bedisplayed along with their corresponding current status in the fourthuser interface.
 8. The method of claim 7, wherein the fourth userinterface further comprises a fourth selectable affordance for posting acomment common to the multiple issues.
 9. The method of claim 8, furthercomprising: receiving, by the assistant program, a fourth selection ofthe fourth selectable affordance for responding to the multiple issueswith the comment; and communicating the comment and the third list to anissue tracking system.
 10. The method of claim 1, further comprising: inresponse to receiving, by the assistant program, the second selection ofthe second selectable affordance to report the actual incident,creating, by the assistant program, a new incident record; andcommunicating the new incident record to an issue tracking system. 11.The method of claim 1, wherein: the multiple issues are selected from aset of issues; and the selected multiple issues are identified by havingbeen created within the predetermined interval.
 12. Acomputer-implemented method for detecting an incident, the methodincludes: receiving, at an incident management system, issue datacorresponding to multiple issues from an issue tracking system;analyzing, by the incident management system, the issue data over apredetermined interval; determining, by the incident management systemand based on the analysis of the issue data, cumulative characteristicsof the issue data; determining, by the incident management system, thata potential incident has occurred based on the cumulativecharacteristics exceeding a threshold value; in response to thedetermination that the potential incident has occurred, creating, by theincident management system, an incident management assistant program andan alert; identifying, by the incident management system, relevant usersto receive the alert; and transmitting, by the incident managementsystem, the alert to the relevant users, the alert including a pointerto the incident management assistant program.
 13. Thecomputer-implemented method of claim 12, wherein the issue data isreceived in the form of issue descriptors, each issue descriptorcorresponding to an issue of the multiple issues and comprising: anissue identifier field; an issue description field; and a time fieldindicating a time when the issue was created.
 14. Thecomputer-implemented method of claim 13, wherein analyzing the issuedata over the predetermined interval includes determining an issuecreation rate over the predetermined interval based on the time field inthe issue descriptors.
 15. The computer-implemented method of claim 14,wherein determining whether the potential incident has occurred includesdetermining whether the issue creation rate exceeds a threshold rate.16. The computer-implemented method of claim 15, wherein the thresholdrate is a dynamic threshold rate that varies based on at least one of: atime of day; an application associated with the incident managementsystem; or a geographical location associated with the issue or theincident management system.
 17. The computer-implemented method of claim15, wherein analyzing the issue data over the predetermined intervalfurther includes analyzing keywords in the issue description field ofthe issue descriptors.
 18. The computer-implemented method of claim 17,wherein determining whether the potential incident has occurred furtherincludes determining whether the keywords are identified in a thresholdnumber of issue descriptors in the predetermined interval.
 19. Thecomputer-implemented method of claim 15, wherein analyzing the issuedata over the predetermined interval further includes analyzing theissue identifier field in the issue descriptors to determine: a numberof distinct issue identifiers the issue descriptors are associated with;and a number of issue descriptors associated with each of the distinctissue identifiers.
 20. The computer-implemented method of claim 19,wherein determining whether the potential incident has occurred furtherincludes determining whether the number of issue descriptors associatedwith any of the distinct issue identifiers exceeds a threshold number.